/*
* ECARX Technology Limited is the owner of the copyright and the trade secret of this software.
* Without permission, no one has the right to obtain, disclose or use this software in any way.
*/

package ecarx.xsf.notificationcenter.interfaces;


import ecarx.xsf.notificationcenter.common.Constants;

/**
 * FileName: ISceneCardAPI.java <br>
 * Description : 智能卡片 API 接口类 <br>
 * Create Time: 2019/12/26 11:12 <br>
 * Update Time: 2021/8/3 14:07 <br>
 *
 * @since 1.0.0
 */
public interface ISceneCardAPI  {

    /**
     * * 添加智能卡片消息监听.
     * <p> 智能卡片数据通过监听回掉的方式夸进程传输到客户端，客户端初始化 API 成功后必须添加消息监听器才可以接收到系统消息 <br>
     *
     * @param onSceneCardListener 监听器 {@link OnSceneCardListener}
     * @since 1.0.0
     */
    void addSceneCardListener(OnSceneCardListener onSceneCardListener);

    /**
     * * 移除消息监听器.
     * <p> 页面退出无需再监听系统智能卡片消息或重新添加监听器时<br>
     *
     * @param onSceneCardListener 监听器 {@link OnSceneCardListener}
     * @see #addSceneCardListener(OnSceneCardListener)
     * @since 1.0.0
     */
    void removeSceneCardListener(OnSceneCardListener onSceneCardListener);

    /**
     * * 消息状态发生改变，通知系统 Launcher Controller.
     * <p> 当消息被处理或客户端主动让 Launcher Controller 系统在有消息的情况下下发下一条智能卡片消息 <br>
     *
     * @param status 消息处理状态
     * @see Constants
     * @since 1.0.0
     */
    void notifySceneCardStatusChange(int status);

}
